package com.dap.configuration.service.config.dao;

import java.util.List;

import com.baidu.disconf.core.common.constants.DisConfigTypeEnum;
import com.baidu.disconf.web.service.config.bo.Config;
import com.baidu.disconf.web.service.config.bo.ConfigHistory;
import com.baidu.dsp.common.form.RequestListBase.Page;
import com.baidu.ub.common.db.DaoPageResult;
import com.baidu.unbiz.common.genericdao.dao.BaseDao;

/**
 * @author dengxiang
 * @version 2014-6-16
 */
public interface ConfigExtensionDao extends BaseDao<Long, Config> {

    /**
     * @param appName
     * @return
     */
    List<Config> getConfByAppEnv(Long appId, Long envId);

    /**
     * @param appId
     * @param envId
     * @param version
     * @return
     */
    DaoPageResult<Config> getConfigList(Long appId, Long envId, String version, String bankKey ,String startTime,String endTime,String name,String userId ,Page page);

    /**
     * @param appId
     * @param envId
     * @param version
     * @param key
     * @param disConfigTypeEnum
     * @param bankKey
     * @param userId
     * @return
     */
	Config getByParameter(Long appId, Long envId, String env, String key,
			DisConfigTypeEnum disConfigTypeEnum, String bankKey, String userId);

	/**
     * @param appId
     * @param envId
     * @param version
     * @param bankKey
     * @param userId
     * @return
     */
	List<Config> getConfigList(Long appId, Long envId, String version,
			String bankKey,String userId);

	/**
     * @param bankKey
     * @param flag
     * @return
     */
	List<Config> getConfigList(String bankKey, String flag);
	
}
